
//  编写全局事件总线
abstract class EventBus {

  static Map<String, List<Function>> _listenersMap = {};

  //  监听事件
  static void on(String eventName, Function callback) {
     List<Function> listeners = _listenersMap[eventName] ?? [];
     listeners.add(callback);
  }

  //  发布事件
  static void emit(String eventName, dynamic data) {
    List<Function> listeners = _listenersMap[eventName] ?? [];
    for (Function callback in listeners) {
      callback(data);
    }
  }

  //  取消监听事件
  static void off(String eventName, Function callback) {
    List<Function> listeners = _listenersMap[eventName] ?? [];
    listeners.remove(callback);
  }

}

